﻿using Platform.Model;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PlatformManagement
{
    public partial class LackReportForm : Form
    {
        public LackReportForm()
        {
            InitializeComponent();
            dgvLackReport.AutoGenerateColumns = false;
        }

        private void LackReportForm_Load(object sender, EventArgs e)
        {
            List<Lack> list = Lack.Objects.Where(x => x.MarketId == WorkSession.Current.Market.ID).ToList();

            dgvLackReport.DataSource = list;

            base.OnShown(e);
        }
        /// <summary>
        /// Load lại dữ liệu theo ngày đã thay đổi
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            dgvLackReport.DataSource = Lack.Objects.GetAll().Where(x => x.OrderDate.ToShortDateString() == dtpDate.Value.ToShortDateString() && x.MarketId==WorkSession.Current.Market.ID ).ToList();
            base.OnShown(e);
        }

        
        private void btnPrnt_Click(object sender, EventArgs e)
        {

            if (dgvLackReport.Rows.Count == 0)
                MessageBox.Show("Không có dữ liệu để xuất");
            else
            {

                Microsoft.Office.Interop.Excel.Application xlApp;
                Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
                Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
                object misValue = System.Reflection.Missing.Value;

                xlApp = new Microsoft.Office.Interop.Excel.Application();
                xlWorkBook = xlApp.Workbooks.Add(misValue);
                xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet) xlWorkBook.Worksheets.get_Item(1);


                // Thay đổi thuộc tính của Workbook 
                xlWorkSheet.Columns.ColumnWidth = 20;

                // Lưu trữ một phần tiêu đề trong Excel
                xlWorkSheet.Cells[1, 7] = "Danh sách hàng thiếu ngày: " + dtpDate.Value.ToShortDateString();

                for (int i = 1; i < dgvLackReport.Columns.Count + 1; i++)
                {

                    xlWorkSheet.Cells[4, i] = dgvLackReport.Columns[i - 1].HeaderText;
                }

                // Mỗi hàng lưu trữ và giá trị cột excel
                for (int i = 0; i < dgvLackReport.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < dgvLackReport.Columns.Count; j++)
                    {

                        xlWorkSheet.Cells[i + 5, j + 1] = dgvLackReport.Rows[i].Cells[j].Value.ToString();
                    }
                }
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();

            }
        }

      
    }
}
